Skip to main content

프롬프트 엔지니어링

프롬프트 엔지니어링(Prompt Engineering)이란?

  • 인공지능에서 얻을 수 있는 프롬프트를 설계하는 방법.
    • 프롬프트 : 텍스트나 이미지와 같이 인공지능에 입력하는 값을 의미.
  • 인공지능은 입력값으로 어떤 값을 주는지에 따라, 결과값이 천차만별로 달라짐.
    • 이는 인공지능의 장점이자 단점.
    • 인간에 비해 훨씬 더 민감하므로, 아주 약간의 값이 바뀌는 것만으로도 결과값이 매우 달라질 수 있음.
      • 인공지능으로부터 원하는 값을 얻기 위한 (성능을 올리기 위한) 프롬프트 값을조정하는 작업이다 보니 꼭 텍스트일 필요는 없음.
      • 그러므로, 프롬프트 값의 설정이 매우 중요.
  • 최근 ChatGPT와 같은 거대 언어 모델은 자연어의 패턴을 파악하고 처리할 수 있음.
    • 이와 같은 거대 언어 모델이 대화의 맥락을 파악하고 응답하는데 프롬프트는 더욱 중요.
즉, 컨텍스트를 고정하는 의미에서 중요

프롬프트 엔지니어링이 부상하는 이유

  • 패러다임의 변화가 있었음.
    • 작은 딥러닝 인공지능이 많이 사용되다가, GPT2 이후로 사전 학습 (pre-train- 대규모 데이터셋으로 데이터의 일반적인 특징을 미리 학습)된 거대한 인공지능이 좋은 성능을 낸다는 것을 발견하면서 거대 인공지능을 사전에 학습시켜 과제에 맞게 파인 튜닝하는 방법을 사용
    • 파인 튜닝(Fine tuning): 초거대 인공지능을 세부 과제에 적합하도록 다시 학습해서성능이 잘 나오도록 미세하게 조정하는 작업.
      • 세부 과제에 적합하게 재학습시키 때문에 기학습한 일반적인 특성의 일부를 포기하는 특징을 가짐.
    • 일정 수준 이상의 파라미터를 가진 거대 인공지능에서 문맥 내 학습이 가능하다는 것을 발견.
      • 보통 인공지능은 데이터와 정답을 주면 그 상관관계를 파악.
      • 반면에 문맥 내 학습은 데이터와 정답을 주고받는 패턴을 거치지 않고 패턴을 파악.
즉, 파인 튜닝을 하지 않기에 비용 효율적 (학습에 필요한 시간, 인력, 인프라)

프롬프트 엔지니어링의 장점

  • 데이터 구성이 필요 없음.
    • 기존 ai 학습에 가장 비용이 컸던 부분. (인적, 시간적, 인프라적)
  • 응답 제어 가능.
    • 응답 받은 답변에 대한 개선 쿼리 등

기타

  • 개발자가 아니더라도, 기존에 전문성을 가진 도메인에 대해 인공지능을 비즈니스에 활용하면 좋음.

기본 단계 프롬프트 엔지니어링

  • 구체적인 조건 명시: 구체적으로 작성
    • before: 인공지능의 기술적 문제에 대해 알려줘
    • after: 인공지능의 기술적 문제에 대해 1개만 알려줘. 그리고 왜 대표적인 문제로 설정했는지 이야기해줘.
  • 맥락 학습: 프롬프트를 작성하려는 배경 추가
    • before: 메일로 교수님께 안부 인사를 써줘.
    • after: 교수님은 내 지도교수님으로 대학원 때 많은 신세를 졌고 최근에 정교수가 되셨는데 오랫동안 뵙지 못했어. 메일로 교수님에게 안부 인사를 써줘.
  • 예시 명시: 기대하는 응답의 예시 추가
    • before: 프롬프트 관련된 도서 이름을 추천해 줘.
    • after: 프롬프트 관련된 도서 이름을 추천해 줘. 기술: 시간, 이름: 어제와 오늘 사이
  • 정의 명시: 잘 사용되지 않거나 동음이의어가 있는 경우 정의를 추가 서술
    • before: comm 에 대해 알려줘.
    • after: comm 은 communication 을 의미해. comm 에 대해 알려줘.
  • 모호성 회피: 문법적 오류 제거
    • 아버지가방에들어가신다 등.
  • 과정보 제거: 최대한 간결하게, 필요한 정보는 누락되지 않도록 작성
    • before: 오늘 아침에 밥을 먹으면서 뉴스를 봤어. 너는 아침밥을 먹었니? 어떨 땐 다른 사람들은 뭘먹나 싶어. 매일 밥 먹을 메뉴를 고민하는 건 고민이야. 나는 토스트를 좋아하긴 해. 그래서토스트를 주로 먹곤 하지. 토스트에 딸기잼을 바르면서 뉴스를 보니 인공지능이 중요해진걸까? 뉴스 여기저기서 이야기를 하네. 이제는 이러한 내용을 이야기하지 않는 기자나 뉴스를 찾는 게 더 어려운 것 같아. 인공지능의 기술 동향을 알려줘.
    • after : 인공지능 기술 동향에 대해 알려줘.
  • 하이퍼 파라미터 튜닝: AI 별로 제공하는 파라미터가 다르므로, 원하는 결과값에 따라 조정.
    • openai 의 temperature 등
  • 반복 질문: 유사한 프롬프트로 다양한 응답을 받아 취합
    • step1: 인공지능이 뭐야?
    • step2: 인공지능에 대해 설명해야한다면 뭐라고 할 거야?
    • step3: 인공지능은 뭐라고 할 수 있어?
  • 정보의 제외: 예상되는 답변의 범위가 너무 넓을 경우,응답의 범위 조절
    • before: 대한민국 정유사에 대해 알려줘.
    • after : 대한민국 정유사에 대해 석유 정제 공정을 제외하고 알려줘.

고급 단계 프롬프트 엔지니어링

  • 파인 튜닝: 이미 학습된 인공지능을 특정 목적에 맞게 더 학습시키는 것.
  • 문맥 내 퓨샷 러닝: 데이터를 많이 주지 않고, 몇 가지만 주어도 결과값을 생성하는 것.
  • 문맥 내 원샷 러닝: 예시를 하나만 제공.
  • 문맥 내 제로샷 러닝: 예시를 제공하지 않음.
  • 사고의 사슬: 단순히 정답을 제공하지 않고, 정답이 어떻게 산출되는지 논리적으로 구성한 예시를 제공.
    • 정답을 가르쳐주고 답하게하는 지도학습과 유사하나, 지도학습은 답을 알려주고 패턴을 찾게 하고, 사고의 사슬은 방법을 알려줌.
  • 역할극: 역할을 부여해 컨텍스트를 고정
  • 질문의 사슬: 위의 반복 질문과 유사하나 상관관계가 있는 질문을 연달아하여 충분히 정보를 뽑아냄.